package com.etl.repayment.model;

import com.baomidou.mybatisplus.enums.IdType;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.xr.model.Model;

/**
 * <p>
 * 借款项目还款报表
 * </p>
 *
 * @author Arnold Yang
 * @since 2018-10-19
 */
@TableName("etl_repayment_statement")
public class RepaymentStatement extends Model {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 标的id
     */
    @TableField("borrow_id")
    private Integer borrowId;
    /**
     * 借款人
     */
    @TableField("user_id")
    private Integer userId;
    /**
     * 第几期
     */
    @TableField("period")
    private Integer period;
    /**
     * 当期应还金额
     */
    @TableField("amount")
    private BigDecimal amount;
    /**
     * 本金
     */
    @TableField("capital")
    private BigDecimal capital;
    /**
     * 利息
     */
    @TableField("interest")
    private BigDecimal interest;
    /**
     * 管理费
     */
    @TableField("manage_fee")
    private BigDecimal manageFee;
    /**
     * 应还款日期
     */
    @TableField("plan_repayment_time")
    private Integer planRepaymentTime;
    /**
     * 实际还款时间
     */
    @TableField("actual_repayment_time")
    private Integer actualRepaymentTime;
    /**
     * 逾期天数
     */
    @TableField("overdue_days")
    private Integer overdueDays;
    /**
     * 逾期罚款
     */
    @TableField("overdue_penalty")
    private BigDecimal overduePenalty;
    /**
     * 减免金额
     */
    @TableField("reduction_amount")
    private BigDecimal reductionAmount;
    /**
     * 是否垫付 0否 1是
     */
    @TableField("advance")
    private Integer advance;
    /**
     * 垫付时间
     */
    @TableField("advance_time")
    private Integer advanceTime;
    /**
     * 状态
     */
    @TableField("status")
    private Integer status;

    public Integer getId() {
        return id;
    }

    public RepaymentStatement setId(Integer id) {
        this.id = id;
        return this;
    }

    public Integer getBorrowId() {
        return borrowId;
    }

    public RepaymentStatement setBorrowId(Integer borrowId) {
        this.borrowId = borrowId;
        return this;
    }

    public Integer getUserId() {
        return userId;
    }

    public RepaymentStatement setUserId(Integer userId) {
        this.userId = userId;
        return this;
    }

    public Integer getPeriod() {
        return period;
    }

    public RepaymentStatement setPeriod(Integer period) {
        this.period = period;
        return this;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public RepaymentStatement setAmount(BigDecimal amount) {
        this.amount = amount;
        return this;
    }

    public BigDecimal getCapital() {
        return capital;
    }

    public RepaymentStatement setCapital(BigDecimal capital) {
        this.capital = capital;
        return this;
    }

    public BigDecimal getInterest() {
        return interest;
    }

    public RepaymentStatement setInterest(BigDecimal interest) {
        this.interest = interest;
        return this;
    }

    public BigDecimal getManageFee() {
        return manageFee;
    }

    public RepaymentStatement setManageFee(BigDecimal manageFee) {
        this.manageFee = manageFee;
        return this;
    }

    public Integer getPlanRepaymentTime() {
        return planRepaymentTime;
    }

    public RepaymentStatement setPlanRepaymentTime(Integer planRepaymentTime) {
        this.planRepaymentTime = planRepaymentTime;
        return this;
    }

    public Integer getActualRepaymentTime() {
        return actualRepaymentTime;
    }

    public RepaymentStatement setActualRepaymentTime(Integer actualRepaymentTime) {
        this.actualRepaymentTime = actualRepaymentTime;
        return this;
    }

    public Integer getOverdueDays() {
        return overdueDays;
    }

    public RepaymentStatement setOverdueDays(Integer overdueDays) {
        this.overdueDays = overdueDays;
        return this;
    }

    public BigDecimal getOverduePenalty() {
        return overduePenalty;
    }

    public RepaymentStatement setOverduePenalty(BigDecimal overduePenalty) {
        this.overduePenalty = overduePenalty;
        return this;
    }

    public BigDecimal getReductionAmount() {
        return reductionAmount;
    }

    public RepaymentStatement setReductionAmount(BigDecimal reductionAmount) {
        this.reductionAmount = reductionAmount;
        return this;
    }

    public Integer getAdvance() {
        return advance;
    }

    public RepaymentStatement setAdvance(Integer advance) {
        this.advance = advance;
        return this;
    }

    public Integer getAdvanceTime() {
        return advanceTime;
    }

    public RepaymentStatement setAdvanceTime(Integer advanceTime) {
        this.advanceTime = advanceTime;
        return this;
    }

    public Integer getStatus() {
        return status;
    }

    public RepaymentStatement setStatus(Integer status) {
        this.status = status;
        return this;
    }

    @Override
    public String toString() {
        return "RepaymentStatement{" +
        ", id=" + id +
        ", borrowId=" + borrowId +
        ", userId=" + userId +
        ", period=" + period +
        ", amount=" + amount +
        ", capital=" + capital +
        ", interest=" + interest +
        ", manageFee=" + manageFee +
        ", planRepaymentTime=" + planRepaymentTime +
        ", actualRepaymentTime=" + actualRepaymentTime +
        ", overdueDays=" + overdueDays +
        ", overduePenalty=" + overduePenalty +
        ", reductionAmount=" + reductionAmount +
        ", advance=" + advance +
        ", advanceTime=" + advanceTime +
        ", status=" + status +
        ", feature=" + feature +
        "}";
    }
}
